import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class RequestService {

  constructor() { }

  // 同步
  getData() {
    return "hello word!!"
  }

  // 异步
  getCallbackData(cd) {
    setTimeout(() => {
      var data="张三";
      cd(data)
    }, 1000);
  }

  getPromiseData() {
    return new Promise((resolve,reject) => {
      setTimeout(() => {
      var data="张三--promise";
      resolve(data)        
      }, 1000);
    })
  }

  getRxjsData() {
    return new Observable((observer) => {
      setTimeout(() => {
        var data="张三--rxjs";
        observer.next(data);
        // observer.error('失败');
      }, 3000);

    })
  }

  // 多次执行
  getRxjsIntervalData() {
    let count=0;
    return new Observable((observer) => {
      setInterval(() => {
        count++;
        var data="张三--rxjs"+count;
        observer.next(data);
        // observer.error('失败');
      }, 3000);

    })
  }
}
